package br.com.sap.visao;

import java.util.List;

import org.zkoss.zul.Checkbox;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;

import br.com.sap.controle.ControleGenerico;
import br.com.sap.controle.TipoControle;
import br.com.sap.modelo.Categoria;
import br.com.sap.modelo.Tipo;
import br.com.sap.modelo.enums.EnumSituacao;

public class CtrlTipoComposer extends CtrlGenericComposer{

	private static final long serialVersionUID = 1L;
	private String chaveBusca;
	private Tipo tipo = new Tipo();
	private TipoControle tipoControle = new TipoControle();
	private ListModelList<Tipo> ListarTipo;
	private Checkbox statusExcluido;
	private Listbox box;
	
	@SuppressWarnings("rawtypes")
	@Override
	public ControleGenerico getControle() {
		// TODO Auto-generated method stub
		return tipoControle;
	}

	

	public Tipo getTipo() {
		return tipo;
	}

	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}
	
	public List<Categoria> getListarCategoria() {
		return tipoControle.getListarCategoria();
	}
	
	public ListModelList<Tipo> getListarTipo() {
		return ListarTipo;
	}



	public String getChaveBusca() {
		return chaveBusca;
	}



	public void setChaveBusca(String chaveBusca) {
		this.chaveBusca = chaveBusca;
	}



	public void setListarTipo(ListModelList<Tipo> listarTipo) {
		ListarTipo = listarTipo;
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public void inicializarVariaveis() {
		
		chaveBusca = "";
		tipo = new Tipo();
		tipoControle = new TipoControle();
		ListarTipo = new ListModelList(this.tipoControle.getListartipos());	
		
	}
	
	

	public void alterarTipo() {
		this.tipo = ListarTipo.get(box.getSelectedIndex());
		this.binder.loadAll();
	}

	public void registrarTipo(){
		
		tipo.setStatus(1);
		tipo.setSituacao(EnumSituacao.ATIVO);
		tipoControle.registrarTipo(tipo);
		
	}
	
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public void procuraTipo() {
		
			if(chaveBusca != ""){
					if (statusExcluido.isChecked()){
						this.tipoControle.getServico().camposProcura.add(("situacao"),"0", true);
						this.tipoControle.getServico().camposProcura.add(("descricao"),this.chaveBusca);
						this.tipoControle.getServico().camposProcura.setCondicional("and");
						this.ListarTipo = new ListModelList(this.tipoControle.procura());
						this.binder.loadAll();
					}else{
						this.tipoControle.getServico().camposProcura.add(("situacao"),"1", true);
						this.tipoControle.getServico().camposProcura.add(("descricao"),this.chaveBusca);
						this.tipoControle.getServico().camposProcura.setCondicional("and");
						this.ListarTipo = new ListModelList(this.tipoControle.procura());
						this.binder.loadAll();
					}
			}else{
				if (statusExcluido.isChecked()){
					
					this.ListarTipo = new ListModelList(this.tipoControle.getListartiposDesativadas());
					this.binder.loadAll();
				}else{
				this.ListarTipo = new ListModelList(this.tipoControle.getListartipos());
				this.binder.loadAll();
			}
			}
		
	}
	
	public void desativarTipo(){
		tipoControle.desativarTipo(tipo);
		
	}
	
	
}
	
	
	
	
	
	
	
	